home *** CD-ROM | disk | FTP | other *** search
/ Turnbull China Bikeride / Turnbull China Bikeride - Disc 2.iso / STUTTGART / LANG / SCHEME / GNU / SCM4E1 / !Scm / slib / promise < prev    next >
Text File  |  1992-10-19  |  550b  |  23 lines

  1. ;From Revised^4 Report on the Algorithmic Language Scheme
  2. ;William Clinger and Jonathon Rees (Editors)
  3.  
  4. (define promise:force (lambda (object) (object)))
  5.  
  6. (define make-promise
  7.   (lambda (proc)
  8.     (let ((result-ready? #f)
  9.       (result #f))
  10.       (lambda ()
  11.     (if result-ready?
  12.         result
  13.         (let ((x (proc)))
  14.           (if result-ready?
  15.           result
  16.           (begin (set! result-ready? #t)
  17.              (set! result x)
  18.              result))))))))
  19.  
  20. ;;; change occurences of (DELAY <expression>) to
  21. ;;; (MAKE-PROMISE (LAMBDA () <expression>))
  22. ;;; and (define force promise:force)
  23.